#ifndef _STACK_H_
#define _STACK_H_
#define STACK_SIZE 128

typedef void STACK;

typedef struct stack_top {
	STACK ** top;
	int location;
	int threshold;
	int c_size;
}STACKORG;

STACKORG stack_top;

void STACKInit(void);
void STACKPush(void * thing);
void * STACKPop();
void STACKRestart(void);
/* TODO: Defining StackPOP and StackPUSH is a no-go.*/

#define StackPUSH(x) STACKPush(x)
#define StackPOP STACKPop
#define STACKSee(X) stack_top.top[stack_top.location - 1 - X]
#define STACKSize() stack_top.location

#endif /*_STACK_H_*/
